package com.goldcn.orderborrow.dao;

import com.goldcn.orderborrow.dto.OrderBorrowSelectDto;
import com.goldcn.orderborrow.dto.OrderBorrowStateDto;
import com.goldcn.orderborrow.erpbean.BorrowInfoWithItems;
import com.goldcn.orderborrow.model.OrderBorrowAndItem;
import com.goldcn.orderborrow.model.OrderInfoBorrow;

import java.util.List;
import java.util.Map;
/**
 * @Description:借货订单DAO
 * @Author Tim Peng
 * @date 2017-4-19 18:24:02
 * @version V1.0
 */
public interface OrderInfoBorrowMapper {
    int deleteByPrimaryKey(Long id);

    int insert(OrderInfoBorrow record);

    int insertSelective(OrderInfoBorrow record);

    OrderInfoBorrow selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(OrderInfoBorrow record);

    int updateByPrimaryKey(OrderInfoBorrow record);

    int updateAmountByPrimaryKey(Map<String, Object> param);

    int updateStateByPrimaryKey(OrderBorrowStateDto orderStateDto);

    List<OrderInfoBorrow> selectListByConditon(OrderBorrowSelectDto selectDto);

    /**
     * 查询用户借货列表id
     * @param selectDto
     * @return
     */
    List<Long> selectUserOrderBorrowIDs(OrderBorrowSelectDto selectDto);

    /**
     * 根据id查询用户借货列表
     * @param ids
     * @return
     */
    List<OrderBorrowAndItem> selectOrderBorrowListByUser(List<Long> ids);

    /**
     * 统计借货审核条数
     * @param selectDto
     * @return
     */
    Long selectBorrowAuditCount(OrderBorrowSelectDto selectDto);

    /**
     * 查询审核列表id
     * @param selectDto
     * @return
     */
    List<Long> selectBorrowAuditIDs(OrderBorrowSelectDto selectDto);


    /**
     * 根据id查询审核列表
     * @param ids
     * @return
     */
    List<OrderBorrowAndItem> selectOrderBorrowAuditList(List<Long> ids);

    /**
     * 统计审核列表条数
     * @param selectDto
     * @return
     */
    Long selectOrderBorrowCount(OrderBorrowSelectDto selectDto);

    /**
     * 查询后台借货列表id
     * @param selectDto
     * @return
     */
    List<Long> selectOrderBorrowIDs(OrderBorrowSelectDto selectDto);

    /**
     * 根据id查询后台借货列表
     * @param ids
     * @return
     */
    List<OrderBorrowAndItem> selectOrderBorrowList(List<Long> ids);

    /**
     * erp查询订单
     * @param orderID
     * @return
     */
    List<BorrowInfoWithItems> selectOrderBorrowErp(Long orderID);

    /**
     * ERP撤回发货
     * @param orderID
     * @return
     */
    int sendBackForERP(Long orderID);


}
